#ifndef __APP_MQTT_H__
#define __APP_MQTT_H__

#include "stdio.h"
#include "string.h"
#include "MQTTClient.h"
#include "log/log.h"

#define ADDRESS "tcp://192.168.12.114:1883"
#define CLIENTID "4e2c8107-7a29-483c-a27c-e1f57fb85282"
#define TOPIC_Receive "Remote_to_GateWay"
#define TOPIC_Send "GateWay_to_Remote"
#define QOS 1
#define TIMEOUT 10000L

/**
 * @brief 初始化MQTT
 * 
 */
int App_Mqtt_Init(void);

/**
 * @brief 关闭MQTT的连接
 * 
 */
void App_Mqtt_Close(void);

/**
 * @brief 发送数据到MQTT服务器
 * 
 * @param json 需要发送的数据
 * @return int 发送成功：0, 发送失败：-1
 */
int App_Mqtt_Send(char * json);

/**
 * @brief 注册MQTT接收数据的回调函数
 * 
 * @param callback 处理消息的回调函数
 */
void App_Mqtt_RegisterRecvCallBack(int (*callback)(char *json));

#endif // __APP_MQTT_H__